package com.hxexp.weixin.mvc.passenger.service;

import com.hxexp.weixin.common.exception.APIException;
import com.hxexp.weixin.common.exception.ServiceException;
import com.hxexp.weixin.hpe.api.addpassenger.model.AddPassengerParamBean;
import com.hxexp.weixin.hpe.api.addpassenger.model.AddPassengerResultBean;
import com.hxexp.weixin.hpe.api.delpassenger.model.DelPassengerParamBean;
import com.hxexp.weixin.hpe.api.delpassenger.model.DelPassengerResultBean;
import com.hxexp.weixin.hpe.api.passengerlist.model.PassengerListResultBean;
import com.hxexp.weixin.hpe.api.querypassenger.model.QueryPassengerResultBean;
import com.hxexp.weixin.hpe.api.updatepassenger.model.UpdatePassengerParamBean;
import com.hxexp.weixin.hpe.api.updatepassenger.model.UpdatePassengerResultBean;

/**
 * 常用乘车人服务
 * @author wang.bin
 * @author li.jiang
 */
public interface PassengerService {
    /**
     * 常用乘车人列表
     * @param userId
     * @return PassengerListResultBean
     * @throws ServiceException
     */
    public PassengerListResultBean getPassengerList(String userId) throws ServiceException;
    /**
     * 新增常用乘车人
     * @param addPassengerParamBean
     * @return AddPassengerResultBean
     * @throws ServiceException
     */
    public AddPassengerResultBean addNewPassenger(AddPassengerParamBean addPassengerParamBean) throws ServiceException;
    /**
     * 修改常用乘车人
     * @param updatePassengerParamBean 乘车人参数
     * @return 返回结果(0:修改乘车人成功，8：手机号不存在，9：证件号被使用，10：手机号被使用，11：必填项未输入)
     * @throws ServiceException
     */
    public UpdatePassengerResultBean updatePassenger(UpdatePassengerParamBean updatePassengerParamBean) throws ServiceException;
    /**
     * 删除常用乘车人
     * @param delPassengerParamBean 删除常用乘车人参数
     * @return 返回结果(0:删除乘车人成功)
     * @throws APIException
     */
    public DelPassengerResultBean delPassenger(DelPassengerParamBean delPassengerParamBean) throws ServiceException;
    /**
     * 查询常用乘车人
     * @param passengerId 查询常用乘车人参数
     * @return 返回结果(0)
     * @throws APIException
     */
    public QueryPassengerResultBean queryPassengerInfo(String passengerId) throws ServiceException;
}
